Czysta architektura. Struktura i design oprogramowania. Przewodnik dla profesjonalistów

Czysta architektura. Struktura i design oprogramowania. Przewodnik dla profesjonalistów

  • Downloads:5797
  • Type:Epub+TxT+PDF+Mobi
  • Create Date:2022-06-18 09:51:35
  • Update Date:2025-09-06
  • Status:finish
  • Author:Robert C. Martin
  • ISBN:8328342251
  • Environment:PC/Android/iPhone/iPad/Kindle

Summary

Pierwsze linie kodu powstawały w połowie ubiegłego wieku。 Komputery, na które tworzono te programy, w bardzo niewielkim stopniu przypominały współczesne maszyny。 Niezależnie od upływu lat, postępu technologii i powstawania wymyślnych narzędzi, języków programowania czy frameworków pewne zasady tworzenia kodu pozostają niezmienne。 Są takie same jak w czasie, gdy Alan Turing pisał pierwszy kod maszynowy w 1946 roku。 Respektowanie tych zasad to warunek, że uzyska się oprogramowanie o czystej architekturze, czyli poprawne strukturalnie, łatwe w utrzymaniu i rozwijaniu, a przede wszystkim działające zgodnie z oczekiwaniami。

W tej książce w sposób jasny i bardzo interesujący przedstawiono uniwersalne zasady architektury oprogramowania wraz z szeregiem wskazówek dotyczących stosowania tych reguł w praktyce。 Wyczerpująco zaprezentowano tu dostępne rozwiązania i wyjaśniono, dlaczego są one tak istotne dla sukcesu przedsięwzięcia。 Publikacja jest wypełniona bardzo praktycznymi rozwiązaniami problemów, z którymi musi się mierzyć wielu programistów。 Szczególnie cenne są uwagi dotyczące zapobiegania częstemu problemowi, jakim jest stopniowa utrata jakości kodu w miarę postępu projektu。 Ta książka obowiązkowo powinna się znaleźć w podręcznej biblioteczce każdego architekta oprogramowania, analityka systemowego, projektanta i menedżera!

Z książki dowiesz się:
- Do czego muszą dążyć architekci oprogramowania i w jaki sposób mogą osiągać te cele
- Jak brzmią najważniejsze zasady projektowania oprogramowania związane z adresowaniem funkcji, separacją komponentów i zarządzaniem danymi
- W jaki sposób paradygmaty oprogramowania wzmagają dyscyplinę pracy
- Co podczas tworzenia oprogramowania jest więcej, a co jest mniej ważne
- W jaki sposób implementować optymalne struktury dla sieci WWW, baz danych, konsoli i aplikacji osadzonych

Czysta architektura - doskonały kod!

Download

Reviews

Lars Ankile

What’s not to love about Uncle Bob? Oh, yes, I deducted one star because some parts were honestly a little too abstract and went over mye head。 It still is a worthwhile and thought provoking read。

Jiří Musil

Veeery good。

Feycot

- Много воды- Снова много примеров на Java- Не хватило конкретики- Снова много предложений или тезисов, которые будут спорные\вредные+ Читается в принципе легко+ Намного полезнее, чем Чистый код+ Есть вещи, К которым можно вернуться и перечитать - собственно все, что касается уровней абстракций, компонентовВ целом книга намного полезнее Чистого кода。 Не так много категоричных заявлений, но либо я глупый, либо что, но понял и осознал только часть, поэтому придётся к книге возвращаться и что-то пе - Много воды- Снова много примеров на Java- Не хватило конкретики- Снова много предложений или тезисов, которые будут спорные\вредные+ Читается в принципе легко+ Намного полезнее, чем Чистый код+ Есть вещи, К которым можно вернуться и перечитать - собственно все, что касается уровней абстракций, компонентовВ целом книга намного полезнее Чистого кода。 Не так много категоричных заявлений, но либо я глупый, либо что, но понял и осознал только часть, поэтому придётся к книге возвращаться и что-то перечитывать。 。。。more

Aaron

I read this book as part of my Microsoft team's "Book Club" discussions。 This book is cleverly written and pretty digestible。 It introduces and rehashes many important design principles and concepts that are useful for designing the architectures of the software systems that surround us all in our world today。 I read this book as part of my Microsoft team's "Book Club" discussions。 This book is cleverly written and pretty digestible。 It introduces and rehashes many important design principles and concepts that are useful for designing the architectures of the software systems that surround us all in our world today。 。。。more

Maxime MOHANDI

Very interessing but hard to read

Tytka na książki

Nie jest to typowa recenzja。 Poniżej przedstawiam parę wiadomości, przemyśleń z programowania na bazie lektury, które chciałbym zapamiętać:- Dobrze omówiony podział paradygmatów: strukturalny, obiektowy i funkcyjny。 Idealna realizacja funkcyjnego jest event sourcing systemów w których każdego dnia zapisywany jest stan bieżący, a każda zmiana jest trzymana jako transakcja - tak jak działa system git-Do powstania paradygmatu strukturalnego doprowadziły trudności z “goto”, a do paradygmatu obiekto Nie jest to typowa recenzja。 Poniżej przedstawiam parę wiadomości, przemyśleń z programowania na bazie lektury, które chciałbym zapamiętać:- Dobrze omówiony podział paradygmatów: strukturalny, obiektowy i funkcyjny。 Idealna realizacja funkcyjnego jest event sourcing systemów w których każdego dnia zapisywany jest stan bieżący, a każda zmiana jest trzymana jako transakcja - tak jak działa system git-Do powstania paradygmatu strukturalnego doprowadziły trudności z “goto”, a do paradygmatu obiektowego wynalezienie sposobu na to, by zmienne lokalne mogły istnieć po zakończeniu funkcji (dzięki przeniesieniu na “styrte”)。 W ten sposób powstał konstruktor。- Znane z javy break i wyjątki to współczesne “goto”, czyli przekazywanie sterowania。 Tak to trzeba rozumieć, -Zasada SRP jest powszechnie źle interpretowana。 W tej zasadzie dzielimy funkcjonalności w zależności od aktorów。 -Rozdział o miarach stabilności komponentów jest zbyteczny。 Nikt nie ma czasu na liczenie i rozmyślanie nad wskaźnikami stabilności i abstrakcyjności komponentów。 -Wpływ architektury na samo działanie aplikacji jest przeceniany。 Ma ona wpływ na rozwój instalowanie i utrzymanie systemu。 -Prawo Conway - system odwzorowuje strukturę organizacji (i to jak bardzo!) -Mikroserwisy tylko pozornie pozwalają na osobny development (sam tego doświadczyłem w życiu) - Testy jednostkowe stanowią zewnętrzny krąg architektury- Problem Fragile tests problem - pamiętam przypadek z życia wzięty, w którym mała zmiana w logowaniu spowodowała, że testy selenium padały, a naprawa ich była koszmarem。-Najlepszym sposobem na dobry system jest testowanie rzeczy nieulotnych jak reguły biznesowe, a nie ulotnych jak UI - Idealne warstwy według Uncle Boba na serwerze: oprogramowanie, OSAL, syste, operacyjny, HAL, firmware i sprzęt。-Nie wolno wpuścić frameworków do naszych obiektów biznesowych。 Im ich mniej tym lepiej。 A jak już musimy to lepiej tworzyć wtyczki komunikacyjne。-Springowy atrybut Autowired to przykład zbyt dużej ingerencji w obiekty biznesowe。 -Według autora dyski zostaną zastąpione przez pamięć ram。 。。。more

Giorgi Jibladze

The book is valuable for both experienced and new engineers as it covers a wide range of topics related to software architecture and is not discussing any particular topic in deep detail。 Hence, people with any experience can find parts interesting for them or they can look at things from a different angle (Robert C。 Martin is really good at this)。The author starts by discussing programming paradigms and step by step leads us to the next layers of abstraction towards the architecture of cloud in The book is valuable for both experienced and new engineers as it covers a wide range of topics related to software architecture and is not discussing any particular topic in deep detail。 Hence, people with any experience can find parts interesting for them or they can look at things from a different angle (Robert C。 Martin is really good at this)。The author starts by discussing programming paradigms and step by step leads us to the next layers of abstraction towards the architecture of cloud infrastructure components。It's impressive, how Uncle Bob defines the paradigms - as the way to remove some capabilities from us。 He shows that all the paradigms impose discipline on how we write programs - structural and object-oriented paradigms discipline on direct and indirect transfer of controls, while functional disciplines on the value assignment。Also, absolutely exciting for me, how he draws an analogy between the software testing concept and the scientific method。 The idea of proving something is correct by failing to prove its incorrectness (Euclidean style mathematical proofs VS scientific method)。 I have never thought about automated tests this way。In the following chapters, he fantastically explains the idea of unit testing practically not mentioning the term itself, but introducing the very important concept of boundaries and the idea of the policies (business logic) vs the details (interfaces, adapters, databases, frameworks, etc。), where he shows that in good architecture, you never need that your policies know anything about the details (databases for example), while they should be able to work independently against use-cases - the idea of unit testing。Of course, nobody will be surprised that Robert C。 Martin pays your attention to SOLID and component principles (to be honest this part was the most boring for me, but acknowledge its importance - they're core for all other principles)。Finally, the culmination of the book is the idea and the art of crossing the boundaries as well as the author’s famous diagram depicting the layers of the solution and distinguishing details from business logic。Truly, architecture should scream about the domain。 。。。more

Wojciech Pierwoła

Bardziej 3。5, sporo za dużo retoryki i anegdot budujących autorytet autora (case fitnesse i wymagań do bazy danych)

Carter

Uncle Bob's Clean series, reprises some old themes, but in the context of more recent developments in the field。 Elasticity of computational resources, is even, with difficult additional security considerations, is a huge change。 Recommended。 Uncle Bob's Clean series, reprises some old themes, but in the context of more recent developments in the field。 Elasticity of computational resources, is even, with difficult additional security considerations, is a huge change。 Recommended。 。。。more

Paul Sochiera

I didn't understand everything, yet I learned soo much and I am stunned。This book covers every dimension, from small-scale function level to entire application-level-scale。 It presents various principles for designing software that structure it logically and make development, maintenance and augmentation way easier。 It also incorporates the necessary nuance。Very strong。 Though it presents advanced high-end concepts for designing large-scale applications, which aren't all super-applicable for me, I didn't understand everything, yet I learned soo much and I am stunned。This book covers every dimension, from small-scale function level to entire application-level-scale。 It presents various principles for designing software that structure it logically and make development, maintenance and augmentation way easier。 It also incorporates the necessary nuance。Very strong。 Though it presents advanced high-end concepts for designing large-scale applications, which aren't all super-applicable for me, I learnt a lot。 。。。more

Artem Shananin

good book, but not for beginners

Kiran

Uncle Bob has explained quite a few core architecture principles, that make for a good read。 It would have made for an even better read if it was concise。 Felt the content was pulled to make a 375 pager out of it and that it could have included a few more detailed examples。

Adam Cole

A must read for anyone who wants to take themselves seriously as a software engineer。

Алексей Осецкий

Чтобы понять книжку Роберта Мартина。 Нужно прочитать другую книжку Роберта))Когда прочитал предыдущую книгу "Идеальный программист" то не совсем понял, как написать мгновенно выполняющиеся тесты на все систему с учетом фреймворков, баз данных。А теперь момент с тестами стал яснее。Не понял как конкретно хочет описывать Entity и Business Rules без фреймворков。 К сожалению примеров в книге маловато。 Но идеи интересные, и новые для меня。 Чтобы понять книжку Роберта Мартина。 Нужно прочитать другую книжку Роберта))Когда прочитал предыдущую книгу "Идеальный программист" то не совсем понял, как написать мгновенно выполняющиеся тесты на все систему с учетом фреймворков, баз данных。А теперь момент с тестами стал яснее。Не понял как конкретно хочет описывать Entity и Business Rules без фреймворков。 К сожалению примеров в книге маловато。 Но идеи интересные, и новые для меня。 。。。more

David

Not as paradigm shifting as "Clean Code" but still pretty good。 Maybe best as a ~4th+ programming book。 Not as paradigm shifting as "Clean Code" but still pretty good。 Maybe best as a ~4th+ programming book。 。。。more

Kadir Akın Korkunç

I read this book as a newbie in software development, it has helped me in many ways。 It made me familiar with the foundation of things I heard most of the time but didn't know the details of。 I read this book as a newbie in software development, it has helped me in many ways。 It made me familiar with the foundation of things I heard most of the time but didn't know the details of。 。。。more

Nicolás Parrado

Very nice book that guides you from the mistakes or errors found by the author, to the proposed solutions via deep thinking into the causes and effects that the software architecture can do。

Andrew Burns

This review has been hidden because it contains spoilers。 To view it, click here。 If you have read Clean Code by the same author, then this book can be avoided。 I felt it repeated many of the same principles and concepts。 Clean Architecture according to Uncle Bob, is achieved by breaking down a system into components along system boundaries (using mostly SOLID principles)。 I am grossly simplifying here。 He later admits that these boundaries exist everywhere and that it is expensive to implement these boundaries all the time (YAGNI)。 It is up to the developer to understand (gu If you have read Clean Code by the same author, then this book can be avoided。 I felt it repeated many of the same principles and concepts。 Clean Architecture according to Uncle Bob, is achieved by breaking down a system into components along system boundaries (using mostly SOLID principles)。 I am grossly simplifying here。 He later admits that these boundaries exist everywhere and that it is expensive to implement these boundaries all the time (YAGNI)。 It is up to the developer to understand (guess) when this is needed。 This is all well and good, but the author doesn't follow up with any examples or any further detail about how to approach that decision。 I found this frustrating and I'm not sure what I really took away from reading it。 。。。more

Mohammad-Ali A'râbi

One or two chapters were extremely helpful。 The rest were insightful。

Konstantin Trunin

Excellent book every Software Developer should read and learn!What is Software Architecture? What is GOOD software architecture? Key principles and how to implement them。 What should NOT be considered as part of architecture and what decisions should be postponed as much as possible?I prepared detailed mind maps for each part of the book: https://trunin。com/en/tags/clean-arch。。。 Excellent book every Software Developer should read and learn!What is Software Architecture? What is GOOD software architecture? Key principles and how to implement them。 What should NOT be considered as part of architecture and what decisions should be postponed as much as possible?I prepared detailed mind maps for each part of the book: https://trunin。com/en/tags/clean-arch。。。 。。。more

Salus

I think, if you are in a coding career you will enjoy this book and get for sure some insight and useful knowledge from it。 I am in SW since no long ago, so I was a bit lost with some terms that the author treat as trivial。 In my opinion, there is a lack of examples during the book。 You have then on the apendix though。 As I progress on my career and get a broather view of the field, and get familiar with some terms, I will revisit the book for sure。 I also must say that it was easy to read despi I think, if you are in a coding career you will enjoy this book and get for sure some insight and useful knowledge from it。 I am in SW since no long ago, so I was a bit lost with some terms that the author treat as trivial。 In my opinion, there is a lack of examples during the book。 You have then on the apendix though。 As I progress on my career and get a broather view of the field, and get familiar with some terms, I will revisit the book for sure。 I also must say that it was easy to read despite of the fact that I was lost because of the therms and familiarity with Sw Architecture graphs。 。。。more

Martijn

This book changed my career forever。 Incredible book!

Waldemar Neto

I think it's the third time I read this book and there's still a lot of things I can get from it。 I feel it's a bit hard to read sometimes, the examples are not quite clear so it's always a big mental exercise for me to get through but as I said there's a lot of useful things that are still up to date with the software development and architecture。 I think it's the third time I read this book and there's still a lot of things I can get from it。 I feel it's a bit hard to read sometimes, the examples are not quite clear so it's always a big mental exercise for me to get through but as I said there's a lot of useful things that are still up to date with the software development and architecture。 。。。more

Jared Willden

A solid take with a lot of practical advice。

Mette

A bit hard to get through even though the writing is quite light-hearted and entertaining in general。 I mainly got confused about all of the acronyms and also the diagrams varied in understandability。 But I did find myself thinking "Ooh that makes sense, I wish I had known that earlier!" numerous times while reading this book。 Finally, my advice is to read this in long sessions and as short a time period as possible, because I did find that to be more effective than going weeks without reading, A bit hard to get through even though the writing is quite light-hearted and entertaining in general。 I mainly got confused about all of the acronyms and also the diagrams varied in understandability。 But I did find myself thinking "Ooh that makes sense, I wish I had known that earlier!" numerous times while reading this book。 Finally, my advice is to read this in long sessions and as short a time period as possible, because I did find that to be more effective than going weeks without reading, and then trying to get back into it。 。。。more

ScienceWorldKnows

Uncle Bob presents the reader with a vital primer toward achieving the groundwork of an effectual project for group and public dissemination。 There is no unnecessary drift offered from the target of appeasing us the steps toward bringing what you are working on into the mindful marketplace。 Another absolute must-read Uncle Bob masterstroke。

Enis Yılmaz

Well, honestly It's so good book for developers。 It gives the idea for you。 But you must read carefully because of all of lines are important for you。Açıkçası geliştiriciler için çok iyi bir kitap size fikirler veriyor。 Dikkatlice okumalısınız çünkü her satır önemli。 Well, honestly It's so good book for developers。 It gives the idea for you。 But you must read carefully because of all of lines are important for you。Açıkçası geliştiriciler için çok iyi bir kitap size fikirler veriyor。 Dikkatlice okumalısınız çünkü her satır önemli。 。。。more

Maksim Kiryanov

После таких книг думаю: "Почему я не прочитал это раньше?" После таких книг думаю: "Почему я не прочитал это раньше?" 。。。more

Lachlan Jacob

This was a well written book and I learned quite a bit about architecturing software effectively。 Some of this stuff felt like revision of things I learned in Uni but overall it was an enjoyable read and gave names to concepts I'd encountered at work before。 I would recommend to anyone working on software projects regularly。 This was a well written book and I learned quite a bit about architecturing software effectively。 Some of this stuff felt like revision of things I learned in Uni but overall it was an enjoyable read and gave names to concepts I'd encountered at work before。 I would recommend to anyone working on software projects regularly。 。。。more

Farzin

[]